home *** CD-ROM | disk | FTP | other *** search
- #
- # Demonstration Tools
- #
- #
-
- ###############################################################################
- # Thumb Attachements
- ###############################################################################
-
- CreateThumb = FUNCTION(vect):
- return = sphereSrf(0.025) * trans(vect);
-
- AttachThumbToCurve = FUNCTION(curve): thumb: mov_xyz: pt: cent:
- pt = ceval(curve, 0):
- cent = vector(coord(pt, 1) ,coord(pt, 2), 0):
- thumb = CreateThumb(cent):
- mov_xyz = curve*trans(-cent):
- attrib(thumb, "animation", list( mov_xyz )):
- return = list(curve, thumb);
-
- AttachNodesToCtlpoly = FUNCTION(plgn, colors): obj: i:
- return = list(plgn):
- for (i=1, 1, sizeof(plgn),
- obj = CreateThumb(coerce(coord(plgn, i-1), VECTOR_TYPE)):
- color(obj, nth(colors, i)):
- snoc(obj, return)
- );
-
-
-
- ##############################################################################
- # Parametric Domain Bar
- ###############################################################################
- #
- # |---|----|----|----|----|-----|-----|-----|-----|-----|
- # 0 1
- #
- # Objects created: Index:
- # thumb bar 1
- # min tick 2
- # max tick 3+numOfSegments
- #
- DomainBar = FUNCTION(numOfSegments, dim): step: i: small: large1: large2: bar:
- step = 1.0/(numOfSegments):
- if (dim < 2,
- bar = ctlpt(E2, 0, 0) + ctlpt(E2, 1, 0):
- large1 = ctlpt(E2, 0, -0.025) + ctlpt(E2, 0, 0.025):
- large2 = ctlpt(E2, 1, -0.025) + ctlpt(E2, 1, 0.025):
- return = list(bar, large1):
- for (i = step, step, 1-step,
- snoc(ctlpt(E2, i, -0.015) + ctlpt(E2, i, 0.015), return)
- ):
- snoc(large2, return),
-
- bar = ctlpt(E2, 0, 0) + ctlpt(E2, 0, 1):
- large1 = ctlpt(E2, -0.025, 0) + ctlpt(E2, 0.025, 0):
- large2 = ctlpt(E2, -0.025, 1) + ctlpt(E2, 0.025, 1):
- return = list(bar, large1):
- for (i = step, step, 1-step,
- snoc(ctlpt(E2, -0.015, i) + ctlpt(E2, 0.015, i), return)
- ):
- snoc(large2, return)
- );
-
-
- ###############################################################################
- # Parametric Domain Trackbar
- ###############################################################################
- #
- # |---|----|----|----|----|-----|-----|--[]-|-----|-----|
- # 0 1
- #
- # Objects created: Index:
- # value 1
- # thumb 2
- # thumb bar 3
- # min tick 4
- # max tick 5+numOfSegments
- #
- DomainTrackbar = FUNCTION(numOfSegments, val): thumb: mov_x:
- thumb = CreateThumb(vector(val, 0, 0)):
- mov_x = ctlpt(E1, 0) + ctlpt(E1, 1):
- attrib(thumb, "animation", list(mov_x)):
- return = list(val, thumb) + DomainBar(numOfSegments, 1);
-
- GetDomainTrackbarThumb = FUNCTION(bar) :
- return = nth(bar, 1);
-
- GetDomainTrackbarValue = FUNCTION(bar):
- return = nth(bar, 0);
-
-
-